کانال بله, جهت پشتیبانی و اطلاع رسانی کانال بله, جهت پشتیبانی و اطلاع رسانی
عضویت

برنامه TaskManager

پروژه برنامه TaskManager
شرح مختصر پروژه

برنامه TaskManager

توضیحات پروژه

برنامه TaskManager

برنامه TaskManager

 

در این برنامه لیستی از تمامی فرآیندهای در حال اجرا به نمایش درآمده و قابلیت بستن هرکدام از این فرآیندها از طرف کاربر مهیا می باشد. ابتدا فضا نام های مورد نیاز را به پروژه اضافه می نماییم:

using System.Diagnostics;
 
using System.Runtime.InteropServices;
 
using System.IO;

برای نشان دادن فرآیندهای در حال اجرا با هر بار تیک تایمر موجود برروی فرم، کد زیر را فراخوانی می کنیم:

 

Process[] allp = Process.GetProcesses();
 
if (listBox1.Items.Count != allp.Length)
 
{
 
listBox1.Items.Clear();
 
foreach (Process p in allp)
 
{
 
listBox1.Items.Add(p.ProcessName);
 
}
 
listBox1.SetSelected(0, true);
 
label1.Text = "Run Process :"+listBox1.Items.Count.ToString();
 
}

کلاس Process دارای متدی با نام GetProcessess است که تمامی پروسس های در حال اجرا را به صورت آرایه بر می گرداند. با یک حلقه foreach روی این آرایه نام تمامی این پروسس ها را در لیست باکس موجود در فرم اضافه می کنیم.

با انتخاب یک گزینه از لیست باکس و فشردن کلید End Task نام تمامی پروسس ها با نام پروسس انتخاب شده چک می شوند و اگر این نام برابر با نام پروسس بود، این پروسس با متد Kill بسته می شود:

Process[] allp = Process.GetProcesses();
 
foreach (Process p in allp)
 
{
 
if (listBox1.SelectedItem.ToString().ToLower() == p.ProcessName.ToLower())
 
{
 
DialogResult end = MessageBox.Show("Are you sure?", "Task Man",MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation); 
 
if (end == DialogResult.Yes) p.Kill();
 
}
 
}

همچنین کاربر با کلیک برروی هر یک از پروسس ها اطلاعات کاملی از آن دریافت می کند. این اطلاعات عبارتند از:

p.Id: شماره این پروسس.

p.MainModule.FileName: آدرس فایلی که با اجرای آن این پروسس بوجود آمده است.

Len: سایزفایل.

Environment.UserName: نام کاربر.

حال به منوهای برنامه می پردازیم:

Process[] allp = Process.GetProcesses();

tmrTaskMgr.Enabled = false;
 
listBox1.Items.Clear();
 
foreach (Process p in allp)
 
{
 
if (p.MainWindowTitle.ToLower() == this.Text.ToLower()) continue;
 
System.Threading.Thread.Sleep(30);
 
listBox1.Items.Add(p.ProcessName);
 
Application.DoEvents();
 
}
 
listBox1.SetSelected(0, true);
 
tmrTaskMgr.Enabled = true;

در این قسمت پروسس های در حال اجرا دوباره خوانده می شوند و در لیست باکس فرم اضافه می شوند.

با کلیلک برروی منو Always On Top برای اینکه فرم برروی بقیه برنامه های درحال اجرا باقی بماند از کد زیر استفاده می کنیم:

this.TopMost = true;

در منو ShutDown برای انجام عملیات مربوط به سیستم ابتدا کتابخانه های مورد نیاز از ویندوز را به برنامه به منظور استفاده از توابع موجود در آن ها اضافه می کنیم:

[DllImport("powrprof.dll")]
 
public static extern Int32 SetSuspendState(Int32 HiberNate, Int32 Force, Int32 Disible);
 
[DllImport("user32.dll")]
 
public static extern int ExitWindowsEx(int uFlags, int dwReason);
 
[DllImport("user32.dll")]
 
public static extern void LockWorkStation();

با استفاده از کلمه کلیدی extern تابعی را که در درون کتابخانه وجود دارد و ما مایل به استفاده از آن می باشیم را اعلام می کنیم. برای مثال به منظور بردن سیستم به حالت Hibernate از کد زیر استفاده می کنیم:

Application.SetSuspendState(PowerState.Hibernate, true, true);

1394/07/27 6058 696
رمز عبور : tahlildadeh.com یا www.tahlildade.com
نظرات شما

نظرات خود را ثبت کنید...